From: Magdalen Berns Date: Sat, 8 Feb 2014 23:47:40 +0000 (+0000) Subject: Magnifier: Restore crosshairs X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~2817 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=8d8d1cfdd620fb1328d274c484b6aa338a15c19c;p=gnome-shell.git Magnifier: Restore crosshairs This patch is to restore broken crosshairs so they may be used once more https://bugzilla.gnome.org/show_bug.cgi?id=723709 magnifier.js --- diff --git a/js/ui/magnifier.js b/js/ui/magnifier.js index 2a6ac3868..96c12b22e 100644 --- a/js/ui/magnifier.js +++ b/js/ui/magnifier.js @@ -57,20 +57,6 @@ const Magnifier = new Lang.Class({ // Magnifier is a manager of ZoomRegions. this._zoomRegions = []; - // Export to dbus. - magDBusService = new MagnifierDBus.ShellMagnifier(); - - let showAtLaunch = this._settingsInit(); - this.setActive(showAtLaunch); - }, - - _initialize: function() { - if (this._initialized) - return; - this._initialized = true; - - this._settingsInitLate(); - // Create small clutter tree for the magnified mouse. let cursorTracker = Meta.CursorTracker.get_for_screen(global.screen); this._mouseSprite = new Clutter.Texture(); @@ -86,11 +72,15 @@ const Magnifier = new Lang.Class({ let aZoomRegion = new ZoomRegion(this, this._cursorRoot); this._zoomRegions.push(aZoomRegion); - this._settingsInitRegion(aZoomRegion); + let showAtLaunch = this._settingsInit(aZoomRegion); aZoomRegion.scrollContentsTo(this.xMouse, this.yMouse); cursorTracker.connect('cursor-changed', Lang.bind(this, this._updateMouseSprite)); this._cursorTracker = cursorTracker; + + // Export to dbus. + magDBusService = new MagnifierDBus.ShellMagnifier(); + this.setActive(showAtLaunch); }, /** @@ -115,12 +105,6 @@ const Magnifier = new Lang.Class({ * @activate: Boolean to activate or de-activate the magnifier. */ setActive: function(activate) { - if (activate == this.isActive()) - return; - - if (activate) - this._initialize(); - this._zoomRegions.forEach (function(zoomRegion, index, array) { zoomRegion.setActive(activate); }); @@ -452,68 +436,64 @@ const Magnifier = new Lang.Class({ this._mouseSprite.set_anchor_point(xHot, yHot); }, - _settingsInitRegion: function(zoomRegion) { - // Mag factor is accurate to two decimal places. - let aPref = parseFloat(this._settings.get_double(MAG_FACTOR_KEY).toFixed(2)); - if (aPref != 0.0) - zoomRegion.setMagFactor(aPref, aPref); - - aPref = this._settings.get_enum(SCREEN_POSITION_KEY); - if (aPref) - zoomRegion.setScreenPosition(aPref); - - zoomRegion.setLensMode(this._settings.get_boolean(LENS_MODE_KEY)); - zoomRegion.setClampScrollingAtEdges(!this._settings.get_boolean(CLAMP_MODE_KEY)); - - aPref = this._settings.get_enum(MOUSE_TRACKING_KEY); - if (aPref) - zoomRegion.setMouseTrackingMode(aPref); - - aPref = this._settings.get_enum(FOCUS_TRACKING_KEY); - if (aPref) - zoomRegion.setFocusTrackingMode(aPref); - - aPref = this._settings.get_enum(CARET_TRACKING_KEY); - if (aPref) - zoomRegion.setCaretTrackingMode(aPref); - - aPref = this._settings.get_boolean(INVERT_LIGHTNESS_KEY); - if (aPref) - zoomRegion.setInvertLightness(aPref); - - aPref = this._settings.get_double(COLOR_SATURATION_KEY); - if (aPref) - zoomRegion.setColorSaturation(aPref); - - let bc = {}; - bc.r = this._settings.get_double(BRIGHT_RED_KEY); - bc.g = this._settings.get_double(BRIGHT_GREEN_KEY); - bc.b = this._settings.get_double(BRIGHT_BLUE_KEY); - zoomRegion.setBrightness(bc); - - bc.r = this._settings.get_double(CONTRAST_RED_KEY); - bc.g = this._settings.get_double(CONTRAST_GREEN_KEY); - bc.b = this._settings.get_double(CONTRAST_BLUE_KEY); - zoomRegion.setContrast(bc); - }, - - _settingsInit: function() { + _settingsInit: function(zoomRegion) { this._appSettings = new Gio.Settings({ schema: APPLICATIONS_SCHEMA }); this._settings = new Gio.Settings({ schema: MAGNIFIER_SCHEMA }); - this._appSettings.connect('changed::' + SHOW_KEY, Lang.bind(this, function() { - let active = this._appSettings.get_boolean(SHOW_KEY); - this.setActive(active); - })); - - return this._appSettings.get_boolean(SHOW_KEY); - }, + if (zoomRegion) { + // Mag factor is accurate to two decimal places. + let aPref = parseFloat(this._settings.get_double(MAG_FACTOR_KEY).toFixed(2)); + if (aPref != 0.0) + zoomRegion.setMagFactor(aPref, aPref); + + aPref = this._settings.get_enum(SCREEN_POSITION_KEY); + if (aPref) + zoomRegion.setScreenPosition(aPref); + + zoomRegion.setLensMode(this._settings.get_boolean(LENS_MODE_KEY)); + zoomRegion.setClampScrollingAtEdges(!this._settings.get_boolean(CLAMP_MODE_KEY)); + + aPref = this._settings.get_enum(MOUSE_TRACKING_KEY); + if (aPref) + zoomRegion.setMouseTrackingMode(aPref); + + aPref = this._settings.get_enum(FOCUS_TRACKING_KEY); + if (aPref) + zoomRegion.setFocusTrackingMode(aPref); + + aPref = this._settings.get_enum(CARET_TRACKING_KEY); + if (aPref) + zoomRegion.setCaretTrackingMode(aPref); + + aPref = this._settings.get_boolean(INVERT_LIGHTNESS_KEY); + if (aPref) + zoomRegion.setInvertLightness(aPref); + + aPref = this._settings.get_double(COLOR_SATURATION_KEY); + if (aPref) + zoomRegion.setColorSaturation(aPref); + + let bc = {}; + bc.r = this._settings.get_double(BRIGHT_RED_KEY); + bc.g = this._settings.get_double(BRIGHT_GREEN_KEY); + bc.b = this._settings.get_double(BRIGHT_BLUE_KEY); + zoomRegion.setBrightness(bc); + + bc.r = this._settings.get_double(CONTRAST_RED_KEY); + bc.g = this._settings.get_double(CONTRAST_GREEN_KEY); + bc.b = this._settings.get_double(CONTRAST_BLUE_KEY); + zoomRegion.setContrast(bc); + } - _settingsInitLate: function() { let showCrosshairs = this._settings.get_boolean(SHOW_CROSS_HAIRS_KEY); this.addCrosshairs(); this.setCrosshairsVisible(showCrosshairs); + this._appSettings.connect('changed::' + SHOW_KEY, + Lang.bind(this, function() { + this.setActive(this._appSettings.get_boolean(SHOW_KEY)); + })); + this._settings.connect('changed::' + SCREEN_POSITION_KEY, Lang.bind(this, this._updateScreenPosition)); this._settings.connect('changed::' + MAG_FACTOR_KEY, @@ -577,6 +557,7 @@ const Magnifier = new Lang.Class({ Lang.bind(this, function() { this.setCrosshairsClip(this._settings.get_boolean(CROSS_HAIRS_CLIP_KEY)); })); + return this._appSettings.get_boolean(SHOW_KEY); }, _updateScreenPosition: function() {